package com.cg.service;

import com.cg.dto.RegisterDTO;
import com.cg.dto.UserDTO;

/**
 * 用户服务接口
 */
public interface UserService {
    
    /**
     * 用户注册（新版本）
     * @param registerDTO 注册信息
     */
    void register(RegisterDTO registerDTO);
    
    /**
     * 用户登录
     * @param username 用户名
     * @param password 密码
     * @return 用户信息
     */
    UserDTO login(String username, String password);
    
    /**
     * 根据用户名查询用户
     * @param username 用户名
     * @return 用户信息
     */
    UserDTO getUserByUsername(String username);
    
    /**
     * 根据邮箱查询用户
     * @param email 邮箱
     * @return 用户信息
     */
    UserDTO getUserByEmail(String email);
    
    /**
     * 根据ID查询用户
     * @param id 用户ID
     * @return 用户信息
     */
    UserDTO getUserById(Long id);
    
    /**
     * 用户注册（旧版本，兼容性）
     * @param user 用户信息
     * @return 是否成功
     */
    boolean register(UserDTO user);
    
    /**
     * 检查用户名是否存在
     * @param username 用户名
     * @return 是否存在
     */
    boolean existsByUsername(String username);
    
    /**
     * 检查邮箱是否存在
     * @param email 邮箱
     * @return 是否存在
     */
    boolean existsByEmail(String email);
}

